Parallel processing (also referred to herein as “parallel computing”) is a form of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved concurrently (“in parallel”). As power consumption (and consequently heat generation) by computers has become a concern in recent years, parallel computing has become a dominant paradigm in computer architecture, mainly in the form of modern processors, such as multi-core processors. As generally understood, a multi-core processor is a single computing component with two or more independent central processing unit (CPU) cores that read and execute program instructions. The multiple cores can issue multiple instructions per cycle from multiple instruction streams, increasing overall speed for programs amenable to parallel computing. Accordingly, parallel processing on a multi-core processor may generally include the simultaneous use of more than one core to execute a program and/or multiple computational threads.
Parallel processing has generally been applied to native applications (e.g., a locally installed application designed to run in the computer environment (machine language and OS) it is being run in). It has become increasingly common for users to access and work with web applications within the web browser. A web application must generally leverage all available computing resources to provide the best possible user experience. However, web applications do not necessarily take full advantage of parallel client hardware due to a lack of appropriate programming models. ECMAScript, the scripting language standardized by Ecma International, is a scripting language widely used for client-side scripting on the web, in the form of several well-known dialects, such as JavaScript®, JScript® and ActionScript®. JavaScript®, for example, is a popular scripting language for manipulating HTML documents in web browsers and adopted in a variety of web applications, is generally limited to sequential execution due to lack of appropriate programming models. As such, data-parallelism has generally not been achievable in web applications.
Although the following Detailed Description will proceed with reference being made to illustrative embodiments, many alternatives, modifications, and variations thereof will be apparent to those skilled in the art.